#ifndef OBJECT_H
#define OBJECT_H
#include"Head.h"
#include"wektor.h"

class Object
{
public:
    Object() {}
    Object(string, int, int);
    virtual ~Object();
    void rysuj(RenderWindow & okno)
    {
        obiekt_spr.SetImage(tekstura);
       // obiekt_spr.SetImage(obiekt_img);
        obiekt_spr.SetPosition(pos.x, pos.y);
        okno.Draw(obiekt_spr);
    }
    void obrot(double i);
    void obramowanie(pozycja, Color, Color);
    void wypelnienie(pozycja p, Color szukany, Color zamiennik);
    pozycja gora(pozycja p)
    {
        --p.y;
        return p;
    }
    pozycja gora_prawo(pozycja p)
    {
        --p.y;
        ++p.x;
        return p;
    }
    pozycja gora_lewo(pozycja p)
    {
        --p.y;
        --p.x;
        return p;
    }
    pozycja dol(pozycja p)
    {
        ++p.y;
        return p;
    }
    pozycja dol_prawo(pozycja p)
    {
        ++p.y;
        ++p.x;
        return p;
    }
    pozycja dol_lewo(pozycja p)
    {
        ++p.y;
        --p.x;
        return p;
    }
    pozycja lewo(pozycja p)
    {
        --p.x;
        return p;
    }
    pozycja prawo(pozycja p)
    {
        ++p.x;
        return p;
    }
    pozycja znajdz(Color);
    bool kolizja();
    inline double odleglosc(Object * wsk);
    bool sprawdz_piksele(Object * wsk);
    void oblicz_srodkek();
    virtual void ruch(RenderWindow & okno);
    void laduje_teksture(string nazwa);
protected:
    Vector2d wktr;
    pozycja pos, min, max, sr_ciezkosci, srodek_spr;
    unsigned int licznik;
    double promien;
    Image obiekt_img, shape, tekstura;
    Sprite obiekt_spr;
    static wektor<Object*> obiekty;
    vector<pozycja> ramka; // ramka kolizji
private:
};


#endif // OBJECT_H
